<!DOCTYPE html>
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">
  <meta name="description" content="刘清政">
  <meta name="keyword" content="hexo-theme">
  
    <link rel="shortcut icon" href="/css/images/logo.png">
  
  <title>
    
      Justin-刘清政的博客
    
  </title>
  <link href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
  <link href="//cdnjs.cloudflare.com/ajax/libs/nprogress/0.2.0/nprogress.min.css" rel="stylesheet">
  <link href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/tomorrow.min.css" rel="stylesheet">
  
<link rel="stylesheet" href="/css/style.css">

  
    
<link rel="stylesheet" href="/css/plugins/gitment.css">

  
  <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
  <script src="//cdnjs.cloudflare.com/ajax/libs/geopattern/1.2.3/js/geopattern.min.js"></script>
  <script src="//cdnjs.cloudflare.com/ajax/libs/nprogress/0.2.0/nprogress.min.js"></script>
  
    
<script src="/js/qrious.js"></script>

  
  
    
<script src="/js/gitment.js"></script>

  
  

  
<meta name="generator" content="Hexo 4.2.0"></head>
<div class="wechat-share">
  <img src="/css/images/logo.png" />
</div>

  <body>
    <header class="header fixed-header">
  <div class="header-container">
    <a class="home-link" href="/">
      <div class="logo"></div>
      <span>Justin-刘清政的博客</span>
    </a>
    <ul class="right-list">
      
        <li class="list-item">
          
            <a href="/" class="item-link active">主页</a>
          
        </li>
      
        <li class="list-item">
          
            <a href="/tags/" class="item-link">标签</a>
          
        </li>
      
        <li class="list-item">
          
            <a href="/archives/" class="item-link">归档</a>
          
        </li>
      
        <li class="list-item">
          
            <a href="/about/" class="item-link">关于我</a>
          
        </li>
      
    </ul>
    <div class="menu">
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
    </div>
    <div class="menu-mask">
      <ul class="menu-list">
        
          <li class="menu-item">
            
              <a href="/" class="menu-link mobile-active">主页</a>
            
          </li>
        
          <li class="menu-item">
            
              <a href="/tags/" class="menu-link">标签</a>
            
          </li>
        
          <li class="menu-item">
            
              <a href="/archives/" class="menu-link">归档</a>
            
          </li>
        
          <li class="menu-item">
            
              <a href="/about/" class="menu-link">关于我</a>
            
          </li>
        
      </ul>
    </div>
  </div>
</header>

    <main class="app-body">
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E8%BF%9B%E9%98%B6/4-%E8%8F%B1%E5%BD%A2%E7%BB%A7%E6%89%BF%E9%97%AE%E9%A2%98/">python/面向对象进阶/4-菱形继承问题</a>
      </h2>
      <p class="article-date">2020年12月21日</p>
      
      <div class="article-summary">
        
          一、类的分类1.1 新式类
继承了object的类以及该类的子类，都是新式类
Python3中所有的类都是新式类

1.2 经典类
没有继承object的类以及该类的子类，都是经典类
只有Python2中才有经典类

二、菱形继承问题
在Java和C#中子类只能继承一个父类，而Python中 ...
        
      </div>
      <a class="more" href="/python/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E8%BF%9B%E9%98%B6/4-%E8%8F%B1%E5%BD%A2%E7%BB%A7%E6%89%BF%E9%97%AE%E9%A2%98/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E5%9F%BA%E7%A1%80/1-%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E7%9A%84%E7%94%B1%E6%9D%A5/">python/面向对象基础/1-面向对象的由来</a>
      </h2>
      <p class="article-date">2020年12月21日</p>
      
      <div class="article-summary">
        
          一、概述1.1 1940年以前：面向机器最早的程序设计都是采用机器语言来编写的,直接使用二进制码来表示机器能够识别和执行的指令和数 据。简单来说,就是直接编写 0 和 1 的序列来代表程序语言。例如:使用 0000 代表 加载(LOAD),0001 代表 存储(STORE)等。机器语言由机器 ...
        
      </div>
      <a class="more" href="/python/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E5%9F%BA%E7%A1%80/1-%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E7%9A%84%E7%94%B1%E6%9D%A5/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E8%BF%9B%E9%98%B6/3-%E7%B1%BB%E7%9A%84%E7%BB%84%E5%90%88/">python/面向对象进阶/3-类的组合</a>
      </h2>
      <p class="article-date">2020年12月21日</p>
      
      <div class="article-summary">
        
          一、什么是组合
组合就是一个类的对象具备某一个属性，该属性的值是指向另外外一个类的对象



二、为什么用组合
组合是用来解决类与类之间代码冗余的问题
首先我们先写一个简单版的选课系统

123456789101112131415161718192021222324252627282930c ...
        
      </div>
      <a class="more" href="/python/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E8%BF%9B%E9%98%B6/3-%E7%B1%BB%E7%9A%84%E7%BB%84%E5%90%88/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/%E5%B8%B8%E7%94%A8%E6%A8%A1%E5%9D%97/9-numpy%E6%A8%A1%E5%9D%97/">python/常用模块/9-numpy模块</a>
      </h2>
      <p class="article-date">2020年12月21日</p>
      
      <div class="article-summary">
        
          一、numpy简介numpy官方文档：https://docs.scipy.org/doc/numpy/reference/?v=20190307135750
numpy是Python的一种开源的数值计算扩展库。这种库可用来存储和处理大型numpy数组，比Python自身的嵌套列表结构要高效 ...
        
      </div>
      <a class="more" href="/python/%E5%B8%B8%E7%94%A8%E6%A8%A1%E5%9D%97/9-numpy%E6%A8%A1%E5%9D%97/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/%E5%B8%B8%E7%94%A8%E6%A8%A1%E5%9D%97/11-matplotlib%E6%A8%A1%E5%9D%97/">python/常用模块/11-matplotlib模块</a>
      </h2>
      <p class="article-date">2020年12月21日</p>
      
      <div class="article-summary">
        
          matplotlib官方文档：https://matplotlib.org/contents.html?v=20190307135750
matplotlib是一个绘图库，它可以创建常用的统计图，包括条形图、箱型图、折线图、散点图、饼图和直方图。
一、条形图123456789101112im ...
        
      </div>
      <a class="more" href="/python/%E5%B8%B8%E7%94%A8%E6%A8%A1%E5%9D%97/11-matplotlib%E6%A8%A1%E5%9D%97/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E8%BF%9B%E9%98%B6/7-%E7%B1%BB%E7%9A%84%E5%B0%81%E8%A3%85/">python/面向对象进阶/7-类的封装</a>
      </h2>
      <p class="article-date">2020年12月21日</p>
      
      <div class="article-summary">
        
          从封装本身的意思去理解，封装就好像是拿来一个麻袋，把小猫，小狗，小王八，还有egon一起装进麻袋，然后把麻袋封上口子。但其实这种理解相当片面
一、封装什么
你钱包的有多少钱（数据的封装）
你的性取向（数据的封装）
你撒尿的具体功能是怎么实现的（方法的封装）

二、为什么要封装封装数据的主要原 ...
        
      </div>
      <a class="more" href="/python/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E8%BF%9B%E9%98%B6/7-%E7%B1%BB%E7%9A%84%E5%B0%81%E8%A3%85/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E8%BF%9B%E9%98%B6/6-%E7%B1%BB%E7%9A%84%E5%A4%9A%E6%80%81%E5%92%8C%E5%A4%9A%E6%80%81%E6%80%A7/">python/面向对象进阶/6-类的多态和多态性</a>
      </h2>
      <p class="article-date">2020年12月21日</p>
      
      <div class="article-summary">
        
          很多人喜欢将多态与多态性二者混为一谈，然后百思不得其解，其实只要分开看，就会很明朗。
一、多态多态指的是一类事物有多种形态，（一个抽象类有多个子类，因而多态的概念依赖于继承）

序列数据类型有多种形态：字符串，列表，元组
动物有多种形态：人，狗，猪

1.1 动物的多种形态123456789 ...
        
      </div>
      <a class="more" href="/python/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E8%BF%9B%E9%98%B6/6-%E7%B1%BB%E7%9A%84%E5%A4%9A%E6%80%81%E5%92%8C%E5%A4%9A%E6%80%81%E6%80%A7/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E8%BF%9B%E9%98%B6/9-%E7%B1%BB%E5%92%8C%E5%AF%B9%E8%B1%A1%E7%9A%84%E7%BB%91%E5%AE%9A%E6%96%B9%E6%B3%95%E5%8F%8A%E9%9D%9E%E7%BB%91%E5%AE%9A%E6%96%B9%E6%B3%95/">python/面向对象进阶/9-类和对象的绑定方法及非绑定方法</a>
      </h2>
      <p class="article-date">2020年12月21日</p>
      
      <div class="article-summary">
        
          类中定义的方法大致可以分为两类：绑定方法和非绑定方法。其中绑定方法又可以分为绑定到对象的方法和绑定到类的方法。
一、绑定方法1.1 对象的绑定方法在类中没有被任何装饰器修饰的方法就是 绑定到对象的方法，这类方法专门为对象定制。
12345678910111213class Person:   ...
        
      </div>
      <a class="more" href="/python/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E8%BF%9B%E9%98%B6/9-%E7%B1%BB%E5%92%8C%E5%AF%B9%E8%B1%A1%E7%9A%84%E7%BB%91%E5%AE%9A%E6%96%B9%E6%B3%95%E5%8F%8A%E9%9D%9E%E7%BB%91%E5%AE%9A%E6%96%B9%E6%B3%95/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E9%AB%98%E9%98%B6/12-__init__%E5%92%8C__new__/">python/面向对象高阶/12-__init__和__new__</a>
      </h2>
      <p class="article-date">2020年12月21日</p>
      
      <div class="article-summary">
        
          曾经我幼稚的以为认识了python的init()方法就相当于认识了类构造器，结果，new()方法突然出现在我眼前，让我突然认识到原来new才是老大。为什么这么说呢？
我们首先得从new(cls[,…])的参数说说起，new方法的第一个参数是这个类，而其余的参数会在调用成功后全部传递给init ...
        
      </div>
      <a class="more" href="/python/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E9%AB%98%E9%98%B6/12-__init__%E5%92%8C__new__/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E9%AB%98%E9%98%B6/11-__call__/">python/面向对象高阶/11-__call__</a>
      </h2>
      <p class="article-date">2020年12月21日</p>
      
      <div class="article-summary">
        
          一、call
对象后面加括号时，触发执行。
注：构造方法的执行是由创建对象触发的，即：对象 = 类名() ；而对于 call 方法的执行是由对象后加括号触发的，即：对象() 或者 类()()

12345678910class Foo:    def __init__(self):      ...
        
      </div>
      <a class="more" href="/python/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E9%AB%98%E9%98%B6/11-__call__/">详情...</a>
    </article>
  

  
    <div class="guide-pager">
  
    <a href="/page/3/"><span class="page-arrow">← </span>Prev</a>
  
  
    <a href="/page/5/">Next<span class="page-arrow"> →</span></a>
  
</div>
  
</main>


    <div class="scroll-top">
  <span class="arrow-icon"></span>
</div>
    <footer class="app-footer">
<!-- 不蒜子统计 -->
<span id="busuanzi_container_site_pv">
     本站总访问量<span id="busuanzi_value_site_pv"></span>次
</span>
<span class="post-meta-divider">|</span>
<span id="busuanzi_container_site_uv" style='display:none'>
     本站访客数<span id="busuanzi_value_site_uv"></span>人
</span>
<script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>



  <p class="copyright">
    &copy; 2021 | Proudly powered by <a href="https://www.cnblogs.com/xiaoyuanqujing" target="_blank">小猿取经</a>
    <br>
    Theme by <a href="https://www.cnblogs.com/xiaoyuanqujing" target="_blank" rel="noopener">小猿取经</a>
  </p>
</footer>

<script>
  function async(u, c) {
    var d = document, t = 'script',
      o = d.createElement(t),
      s = d.getElementsByTagName(t)[0];
    o.src = u;
    if (c) { o.addEventListener('load', function (e) { c(null, e); }, false); }
    s.parentNode.insertBefore(o, s);
  }
</script>
<script>
  async("//cdnjs.cloudflare.com/ajax/libs/fastclick/1.0.6/fastclick.min.js", function(){
    FastClick.attach(document.body);
  })
</script>

<script>
  var hasLine = 'true';
  async("//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js", function(){
    $('figure pre').each(function(i, block) {
      var figure = $(this).parents('figure');
      if (hasLine === 'false') {
        figure.find('.gutter').hide();
      }
      var lang = figure.attr('class').split(' ')[1] || 'code';
      var codeHtml = $(this).html();
      var codeTag = document.createElement('code');
      codeTag.className = lang;
      codeTag.innerHTML = codeHtml;
      $(this).attr('class', '').empty().html(codeTag);
      figure.attr('data-lang', lang.toUpperCase());
      hljs.highlightBlock(block);
    });
  })
</script>





<!-- Baidu Tongji -->

<script>
    var _baId = 'c5fd96eee1193585be191f318c3fa725';
    // Originial
    var _hmt = _hmt || [];
    (function() {
      var hm = document.createElement("script");
      hm.src = "//hm.baidu.com/hm.js?" + _baId;
      var s = document.getElementsByTagName("script")[0];
      s.parentNode.insertBefore(hm, s);
    })();
</script>


<script src="/js/script.js"></script>


<script src="/js/search.js"></script>


<script src="/js/load.js"></script>



  <span class="local-search local-search-google local-search-plugin" style="right: 50px;top: 70px;;position:absolute;z-index:2;">
      <input type="search" placeholder="站内搜索" id="local-search-input" class="local-search-input-cls" style="">
      <div id="local-search-result" class="local-search-result-cls"></div>
  </span>


  </body>
</html>